1. Field of the Invention
The present invention relates generally to interactive multimedia, and more particularly, to a method and apparatus for interfacing with intelligent three-dimensional objects.
2. Description of Related Art
The term “multi media” includes many technologies such as video and interactive three-dimensional (“3D”) technology. Interactive 3D has gained recent popularity due to numerous benefits over two-dimensional technology as well as advantages over plain text or video. First, interactive 3D is unlike a 3D movie in that interactive 3D contains content that is an interactive experience. That is, 3D content, used in conjunction with a computer, enables a user to move objects on the screen and explore different spaces on the screen. A user is able to independently examine objects and wander throughout a “world,” i.e. a 3D space. For example, a typical training video teaching a person how to assemble a part would be rerun several times in order to fully understand the assembly process. However, using interactive 3D, a user assembles the item and then may take the item apart and put the item back together until the assembly process is truly understood. A second advantage of using interactive 3D is that a user's viewpoint belongs to the user, not to the author of the content. Thus, a user may rotate an object or walk around the object to change the view angle. Thirdly, a user may also view objects in different sequences as opposed to watching such objects sequentially which is what occurs in a video.
Even with the popularity of interactive 3D, the widespread use of interactive 3D is limited by storage, delivery and application integration limitations of present-day interactive 3D. 3D content, which is generally the programming language creating a 3D object, is typically stored as a file on a server and then visualized to a user by an application (“plug-in”) over a data network, such as the Internet. This model is known as a file server model. In general, the file server model is shown in prior art FIG. 1 within the dashed line 15. Prior art FIG. 1 is a block diagram view of a typical use of 3D content 10. In FIG. 1, the file server model 15 includes the 3D content 10 developed by a content developer in a programming language. The 3D content is typically written in a programming language known as Virtual Reality Modeling Language (“VRML”). A description of VRML is available in the publication “The Virtual Reality Modeling Language,” ISO/IEC 14772-1: 1997, incorporated herein by reference. A brief example of VRML is provided below in prior art FIG. 2. Returning to prior art FIG. 1, the content developer prepares, in VRML, a file that contains the 3D content to be viewed. A browser on the Internet 100 that wishes to view the 3D content 10 uses a “plug-in” application 90 that is generally loaded into the browser on the Internet 100 in order to visualize the 3D content 10 stored as a file.
A problem with the 3D content stored as a file is that such 3D content is not able to be accessed by a user, such as an application developer 50, that wishes to create an application to interact with the 3D content 10, unless such developer knows VRML. In essence, the 3D content 10 written in VRML is opaque, or not accessible by the application developer, who wishes to use the 3D content to create a packaged software product 70. Thus, the storage and delivery of the 3D content as a file is a limitation of the file server model since application developers must know VRML to interact with the 3D content.
Prior art FIG. 2 is a brief example of VRML that demonstrates the type of understanding of VRML needed by an application developer to create an application that interfaces with 3D content. Prior art FIG. 2 is an example of VRML defining a box 110. In FIG. 2, the 3D content 10 defines the box 110 that an application developer 50 would wish to incorporate into a graphical scene as part of a packaged software product 70 (FIG. 1). To permit the application developer 50 to use the 3D content 10 in the packaged software product 70 being developed, the application developer 50 must be sufficiently familiar with VRML.
VRML is a sophisticated programming language that many application developers 50 may not understand. In FIG. 2, a box 110 is defined by the VRML below the box 110. In general, the box 110 is considered an object that the VRML is able to create, change properties of and connect with other objects. At section 115, VRML has created a new object labeled DEF BOX_GRP. In the next section 120, the Properties 120 of the box are defined and changed. Specifically, at VRML line 130, the box is translated to a certain 3D coordinate (4 .2 1.) At VRML line 140, the box is rotated to a certain orientation (0 1 1.9). At VRML line 150, a subgroup labeled Children is defined to include a shape, at VRML line 160, having the geometry of a box, at VRML line 170, and a particular appearance from VRML line 180. A certain material at VRML 190 is then defined including a particular color. A third section would then create a Route 125 that would match, move or coordinate the box 110 with other objects within the graphical scene of the plugin application (FIG. 1). Thus, VRML provides 3D content that contains Groups 115, Properties 120 and Routes 125 that permit the box 110 to be defined.
However, even if the application developer 50 (FIG. 1) is somewhat familiar with VRML, the integration of the 3D content 10 to the application being developed by the application developer 50 to create a packaged software product 70 is very difficult due to the complexity of VRML. An application developer must study the VRML to locate the 3D content needed and integrate those fields into the application being developed. This process is very complicated and time consuming. A need therefore exists for a user to be able to quickly and easily access different 3D content in VRML without knowing VRML or having to locate specifications and operations in the 3D content.
One attempted solution to this application integration problem has been the use of an External Authoring Interface (EAI). A description of EAI is available in the publication “External Authoring Interface,” ISO/IEC 14772-1: 1997 Appendix B, incorporated herein by reference. EAI has attempted to expose the 3D content to the application but has failed to provide a generic method for providing application integration. EAI has failed since EAI, like VRML itself, is very complicated and difficult to understand. A second problem with EAI is that it is limited in scene graph management. That is, EAI is not able to maintain direct pointers to objects in a scene and is also not able to determine the properties of an object unless the application developer knows the complex VRML. Thirdly, EAI does not provide the application developer with the ability to easily interface with the Groups, Properties and Routes of each object in the 3D content. EAI therefore has application integration limitations that does not solve the need for the integration between 3D content and an application being developed by an application developer (or user) wishing to interface with the 3D content.
A second proposed solution to this application integration problem has been attempted by Microsoft Corporation of Redmond, Wash. in a product commercially known as Chromeffects™. Chromeffects™ is an interactive media technology that is intended to improve the quality and performance of interactive media for the Internet and desktop applications. Chromeffects™ is based on HyperText MarkUp Language (HTML) and Extensible Markup Language (XML) and represents 3D content in a “component” model. A component model to 3D content is an evolution from the object-oriented model that has previously been used. The component model to 3D content treats a 3D object as a simple component by exposing only a group of basic functions to describe the 3D object. That is, while the object-oriented model provides to a user all details of an object to be modeled, a component approach only provides to the user a particular set of functions that functionally and simply describe the object in order to simplify the interaction between the user and the object.
A problem with Chromeffects™ is that the 3D content, based on HTML and XML, needs additional external scripting and interface scripting to provide the needed set of functions. Thus, the 3D content, created in HTML and XML, is not “intelligent,” i.e. intrinsically contained within the 3D content, but instead needs additional content scripting and interface scripting. Such additional scripting takes more time and comes at a higher cost and complexity. Thus, Chromeffects™ is limited by the additional scripting or “intelligence” provided by the scripting to properly integrate the 3D content to an application.
A need therefore remains to provide an interface to 3D content that does not require a user to know VRML and that does not require additional external and interface scripting.